/**
 * Toast 提示框管理
 * 用于显示注册页面的提示信息
 */
(function () {
  'use strict';

  /**
   * 初始化 Toast 提示框
   */
  function initToast() {

    // 1. 检查 Bootstrap 是否加载
    if (typeof bootstrap === 'undefined' || typeof bootstrap.Toast === 'undefined') {
      console.error('❌ Bootstrap Toast 组件未加载，请检查 bootstrap.bundle.min.js 是否正确引入');
      return;
    }

    // 2. 获取 toast 元素
    const toastElement = document.getElementById('toast_info');
    if (!toastElement) {
      console.error('❌ Toast 元素未找到，请检查 toast.pug 是否正确引入');
      return;
    }
    console.log('✅ Toast 元素已找到:', toastElement);

    // 3. 获取服务器传递的信息
    const infoMessage = getServerInfo();
    console.log('📝 服务器信息:', infoMessage);

    // 4. 创建 Toast 实例
    let toastInstance = bootstrap.Toast.getInstance(toastElement);

    if (!toastInstance) {
      toastInstance = new bootstrap.Toast(toastElement, {
        autohide: true,
        // delay: 5000 // 5秒后自动关闭
      });
    }

    // 5. 如果有信息，显示 Toast
    if (infoMessage && infoMessage.length > 0) {
      toastInstance.show();
    } else {
      console.log('ℹ️ 没有需要显示的信息');
    }

    // 6. 监听 Toast 显示事件
    toastElement.addEventListener('shown.bs.toast', function () {
      console.log('✅ Toast 已显示');
    });

    // 7. 监听 Toast 关闭事件
    toastElement.addEventListener('hidden.bs.toast', function () {
      console.log('👋 Toast 已关闭');

      // 清理 URL 中的查询参数
      try {
        if (window.history && window.history.replaceState) {
          const url = new URL(window.location);
          if (url.searchParams.has('success')) {
            url.searchParams.delete('success');
            window.history.replaceState({}, document.title, url.pathname);
          }
        }
      } catch (error) {
        console.warn('清理 URL 参数失败:', error);
      }
    });

  }

  /**
   * 安全地获取服务器传递的信息
   * @returns {string} 服务器信息
   */
  function getServerInfo() {
    // 优先从 window.serverData 获取（推荐方式）
    if (window.serverData && window.serverData.info) {
      return window.serverData.info;
    }

    // 向后兼容：从全局 info 变量获取
    if (typeof info !== 'undefined' && info) {
      return info;
    }

    return '';
  }

  // 确保 DOM 加载完成后再初始化
  if (document.readyState === 'loading') {
    document.addEventListener('DOMContentLoaded', initToast);
  } else {
    initToast();
  }

})();
